Unified message search

ABSTRACT

The disclosed embodiments include computerized methods, systems, and devices, including computer programs encoded on a computer storage medium, for generating terms of a search query based on a user&#39;s spoken utterances, identifying multiple cross-platform messages based on the generated terms, and to generating, via a presentation device, a single interface that enables the user to interact with identified messages. Based on a spoken utterance, the disclosed embodiments may determine user-specified search terms and/or criteria, and based on the user-specified search terms and/or criteria, may obtain cross-platform message data that corresponds to the search query. The communications device may generate one or more interface elements that describe corresponding ones of the cross-platform messages, which may be presented within a unified graphical user interface or voice-user interface by a communications device.

FIELD

This specification describes technologies related to search engines.

BACKGROUND

Now, more than ever, communication represents a core aspect of our dailylives, as much of our professional and private communication occurs viamessages exchanged in written form through various communicationsplatforms, such as email, text message, and chat messages. Although manysmart phones and tablet computers include virtual assistants that may becapable of facilitating simple searches, these virtual assistants areoften incapable of searching for messages generated across variouscommunications platforms using a single search query.

SUMMARY

The disclosed embodiments relate to computerized processes that enable acommunications device, such as a mobile telephone, smart phone, ortablet computer, to generate terms of a search query, to identifymultiple messages across multiple messaging platforms based on thesearch terms, and to present a single interface that enables the user tointeract with the identified messages generated by multiple messagingplatforms. Below, the term “cross-platform messages” refers to a set ofmessages that includes a message from each of multiple differentmessaging platforms or messaging services.

For example, the communications device may receive a search query basedon one or more utterances spoken by the user and captured by amicrophone. The communications device may apply variousspeech-recognition algorithms to the captured audio data and generatecorresponding textual output data, which may include user-specifiedsearch terms. The specified search terms may include, but are notlimited to, a request to identify cross-platform messages associatedwith a particular sender and/or receiver, a particular messagingplatform, a presence of words or phrases within corresponding messagesubjects or message bodies, and/or a particular range of transmissionand/or receipt dates. In other instances, the search query may beopen-ended and, for example, may request access to all cross-platformmessages transmitted from or received by the communications device.

The communications device may access one or more repositories of storedcross-platform message data, and based on the user-specified searchterms, may obtain at least a portion of the stored cross-platformmessage data that corresponds to the search query. The communicationsdevice may generate one or more interface elements that describecross-platform messages within the obtained cross-platform message data(e.g., message cards), and additionally or alternatively, summarizegroups of the cross-platform messages generated by corresponding ones ofthe messaging platforms (e.g., digest cards). The communications devicemay also generate a unified interface that includes the interfaceelements, which include, but are not limited to, the message cardsand/or digest cards. The communications device may process the generateddata and render the unified interface, and the constituent interfaceelements, for presentation to the user through a correspondingpresentation device, such as a touchscreen display of the communicationdevice.

In an embodiment, a computer-implemented method includes receiving, byone or more processors, a query at a communications device, andobtaining, by the one or more processors, message data responsive to thereceived query. The message data may include a plurality of messagesassociated with at least one messaging platform, the messages may beassociated with a plurality of messaging platforms, and at least one ofthe messages are associated with each of a plurality of messagingplatforms. The method may also include identifying, by the one or moreprocessors, one or more first messages of the plurality of messages thatare associated with a first messaging platform, and determining, by theone or more processors, that a number of the first messages exceeds athreshold number of messages. In response to the determination that thefirst message number exceeds the threshold message number, the methodmay generate, by the one or more processors, a first interface elementthat includes at least a portion of each of the first messages, andgenerate, by the one or more processors, a user interface that includesthe first interface element. The method may also include providing, bythe one or more processors, the generated user interface to at least oneof a display device or an audio interface for presentation to a user.

In certain aspects, the method may also include the step of receivingthe first messages at the client device, and the message data mayinclude temporal data indicative of at least one of a time or date atwhich the communications device received each of the first messages. Thestep of generating the one or more interface elements may also includeestablishing a chronological ordering of the received first messagesbased on the temporal data, and arranging the first message portionswithin the first interface element in accordance with the establishedchronological ordering. In further aspects, the first message portionsmay include at least one of textual content or image data, and the firstinterface element further comprises a portion of the temporal dataassociated with an initial one of the first messages within thechronological ordering.

The disclosed methods may also include the steps of detecting a userinput associated with the presented first interface element, in responseto the detected input, generating second interface elements associatedwith each of the first messages, modifying at least a portion of theuser interface to include the second interface elements, and providingthe modified user interface to the display device for presentation tothe user. In certain aspects, the second interface elements may includeportions of corresponding ones of the first messages, the firstinterface element may correspond to a digest card, and the digest cardmay provide a summary of the messages included within the first subsetof messages.

Additionally, in some embodiments, the disclosed methods may include thesteps of identifying second messages within the plurality of messagesthat are associated with a second messaging platform, determining that anumber of the second messages fails to exceed the threshold messagenumber, and in response to the determination that the second messagenumber fails to exceed the threshold message number, generating a secondinterface element associated with each of the second messages. Thesecond interface elements may, for example, include portions ofcorresponding ones of the second messages.

Further, the disclosed methods may also include the step of generating asecond interface element that include at least a portion of a second oneof the messages. In some instances, the query may include at least onekeyword, and the portion of the second message may include textualcontent that includes the keyword, and the method may also include thestep of modifying, within the second interface element, at least onevisual characteristic of the textual content that includes the keyword.In other instances, the generated user interface may include the secondinterface element; and the disclosed methods may also include the stepsof detecting a user input associated with the presented second interfaceelement and in response to the detected input, at least one of executingan application program associated with the at least one messagingplatform or performing operations that initiate an assistant flow. Theexecuted application may, for example, perform one or more operationsrelated to the corresponding message. The disclosed methods may alsoinclude determining that a a body of a second one of the messagesexceeds a predetermined size and in response to the determination,generating a second interface element that includes a portion of thebody of the second message.

In other embodiments, the disclosed methods may include the step ofgenerating a plurality of second interface elements. In some aspects,the second interface elements may be associated with corresponding onesof the messages, the message data may also include temporal dataindicative of at least one of a time or date at which the communicationsdevice received each of the corresponding messages, and the generateduser interface may include the second interface elements. The step ofgenerating the user interface may also include establishing achronological ordering of the corresponding messages based on thetemporal data, and arranging the second interface elements within theuser interface in accordance with the established chronologicalordering.

Methods consistent with the disclosed embodiments may also includereceiving audio data at the communications device, and generating thequery based on at least a portion of the received audio data. The audiodata may include an utterance spoken by a user into a microphone of thecommunications device. Additionally, the disclosed methods may includetransmitting at least a portion of the received query to a computingsystem across a communications network, and receiving at least a portionof the message data from the computing system in response to thetransmission. In further aspects, at least two of the plurality ofmessages are selected from a different one of the group consisting of:email, instant messaging, SMS/MMS text messaging, social networkingapplication, and chat-based application.

In other embodiments, corresponding systems, devices, and computerprograms, may be configured to perform the actions of the methods,encoded on computer storage devices. A device having one or moreprocessors may be so configured by virtue of software, firmware,hardware, or a combination of them installed on the device that inoperation cause the device to perform the actions. One or more computerprograms can be so configured by virtue of having instructions that,when executed by device, cause the device to perform the actions.

The details of one or more embodiments of the subject matter describedin this specification are set forth in the accompanying drawings and thedescription below. Other potential features, aspects, and advantages ofthe subject matter will become apparent from the description, thedrawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of an exemplary computing system, consistent withthe disclosed embodiments.

FIGS. 2A-2C, 3, 4A-4B, and 5 are diagrams of exemplary unifiedinterfaces, consistent with the disclosed embodiments.

FIG. 6 is a flowchart of exemplary processes for searching storedcross-platform messages in response to a single user query, consistentwith the disclosed embodiments.

FIG. 7 is a diagram of computing devices that may be used to implementthe systems and methods described in this document, as either a clientor as a server or plurality of server.

Like reference numbers and designations in the various drawings indicatelike elements.

DETAILED DESCRIPTION

FIG. 1 is a diagram of an exemplary system 100 that, responsive to auser's query, may perform a search of messaging data generated acrossmultiple messaging platforms, in accordance with the disclosedembodiments. In some aspects, system 100 may include a communicationsdevice 110, such as a user's smartphone or tablet computer, and acomputing system 130, which may be associated with and/or maintained byone or more messaging platforms. Additionally, although not shown inFIG. 1, system 100 may also include a communications network thatinterconnects various components of system 100, such as communicationdevice 110 and computing system 130. For example, the communicationsnetwork may include, but is not limited to, a wireless local areanetwork (LAN), e.g., a “WiFi” network, a RF network, a Near FieldCommunication (NFC) network, a wireless Metropolitan Area Network (MAN)connecting multiple wireless LANs, and a wide area network (WAN), e.g.,the Internet.

In an embodiment, a user 101 of a communications device 110 may generateand receive messages using a number of different messaging platforms,including, but not limited to, various email applications, instantmessaging applications, SMS- and/or MMS-based text messaging,social-networking applications, chat-based applications (e.g., Google™hangouts), and other communications platforms that facilitate text-,voice-, or video-based communications between one or more individuals.Various components of system 100, such as communications device 110and/or computing system 130, may store data identifying portions ofthese transmitted or received messages. The stored data, e.g., messagedata, may include structured data stored in a format consistent with thenative messaging platforms and/or metadata characterizing thetransmitted and/or received messages. In certain aspects, communicationsdevice 110 may perform operations that, in response to a user-specifiedquery, parse locally stored and/or remotely accessible message data toidentify one or more messages generated across the various platforms(e.g., cross-platform messages) that are consistent with theuser-specified query. In other aspects, and in response to theuser-specified search query, communications device 110 may performoperations that generate or access an index built over the transmittedand/or received messages, and that search the index to identify the oneor more cross-platform messages that are consistent with theuser-specified query,

Additionally, in certain aspects, various components of system 100, suchas communications device 110, may generate interface elements that, whenrendered for presentation, provide a single, unified interface thatfacilitates user 101's interaction with the identified cross-platformmessages. For example, and as described below, the generated interfaceelements may include a platform-specific interface element, which maydescribe a portion of the identified messages generated by acorresponding messaging application, and additionally or alternatively,may include a message-specific interface element, which may describecontent included within a corresponding one of the identified messages.In certain aspects, as described below, the unified interface mayrepresent a single consistent interface that enables user 101 toidentify and interact with messages of interest generated, transmitted,and/or received across multiple messaging platforms.

Referring to FIG. 1, communications device 110 may include a speechrecognition module 112, a search engine 114, a cross-platform messagestorage 116, and an interface generating module 118, which mayestablished by one or more elements of stored code or instructionsexecuted by a processor of communications device 110. In otherimplementations, communications device 110 may include additional oralternate modules, such as a text-to-speech (TTS) module, which mayestablished by one or more elements of stored code or instructionsexecuted by a processor of communications device 110. Communicationsdevice 110 may also include a presentation device 120, such as atouchscreen display, capable of presenting rendered interface elementsto user 101.

Communications device 110 may also include an audio interface, such as amicrophone, capable of detecting an utterance 102 spoken by user 101,and the audio interface may provide audio data, which includes utterance102, to a speech recognition module 112. In certain aspects, speechrecognition module 112 may apply one or more speech recognitionalgorithms to the provided audio data to generate corresponding textualoutput data, and speech recognition algorithms and models consistentwith the disclosed embodiments may include, but are not limited to,statistical speech-recognition algorithms, such as hidden Markov models,and machine-learning algorithms, such as deep feedforward and recurrentneural networks. Additionally, in some instances, speech recognitionmodule 112 may be associated with and may leverage thespeech-recognition functionality of one or more applications executed bycommunications device 110, such as the speech recognitionfunctionalities provided by a virtual assistant provided bycommunications device 110.

By way of example, as illustrated in FIG. 1, user 101 may activate theaudio interface (e.g., by uttering a predetermined word or phrase, suchas “Okay Google,” or alternatively, by touching or tapping a presentedinterface device associated with the microphone), and utter the phrase“Show me my messages.” The audio interface may detect and capture thespoken phrase as utterance 102, and audio data that includes the spokenphrase to speech recognition module 112, which may process the audiodata and generate corresponding textual output using any of theexemplary processes described above. Speech recognition module 112 mayprocess the audio data, which include the spoken utterance “Okay, showme my messages,” to generate output data 122, which may includerecognized textual data corresponding to the spoken utterance, e.g.,“show my messages.”

Speech recognition module 112 may provide output data 122A to searchengine 114, which may process output data 122A to generate search termsand/or criteria for a corresponding search query (e.g., search query122B). In certain aspects, search engine 114 may access cross-platformmessage storage 116, identify one or more stored cross-platform messagesbased on the generated search terms and/or criteria, and obtain, assearch results (e.g., search results 122C), portions of the message datathat describe the one or more identified cross-platform messages. Theobtained portion of the message data may, for example, include metadatathat characterizes the identified cross-platform messages (e.g.,identifying senders, recipient, send or receipt times, etc.), andadditionally or alternatively, portion of the identified cross-platformmessages (e.g., portions of the message subjects, message contents,and/or message attachments). Additionally, in some implementations,speech recognition module 112 may provide output data 122A to othermodules or components of communications device 110, or to otheraccessible computing systems or servers, e.g., cloud-based systems andservers, which may process output data 122A to generate search query122B, as described above.

In some instances, the generated search terms and/or criteria mayinclude, but are not limited to, a term that identifies one or moremessaging platforms (e.g., SMS text messages, email messages, chatmessages, etc.), a term that identifies a particular sender and/orrecipient (e.g., a name, an email address, a telephone number, a handlein a chat or social media network, etc.), a term identifying aparticular temporal limitation (e.g., messages sent or received in thelast fifteen minutes, thirty minutes, etc.), a term that identifies oneor more attributes of the messages (e.g., new messages, unread messages,etc.), and/or a term that identifies a desired word or phrase within thebodies and/or subject of the messages. The disclosed embodiments are,however, not limited to these exemplary search terms and/or criteria,and in other aspects search engine 114 may establish any additional oralternate search term that would be appropriate to the storedcross-platform messages, communications device 110, and to user 101,such as volume-based limitations that caps the number of returnedcross-platform messages.

In other instances, speech recognition module 112 may also be configuredto detect, within received audio data (e.g., as spoken by user 101), oneor more commands that cause communications device 110 to performadditional operations related to a particular cross-platform message.For example, speech recognition module 112 may detect user 101'sutterance of ‘read it” within the audio data, and communications device110 may perform operations that convert portions of the text of thespecific message to audio content and present that audio content to user101 through a speaker or other interface. Additionally, in some aspects,speech recognition module 112 may detect user 101's utterance of “skipit” within the audio data, and communications device 110 may performoperations that identify a successive message within a set of searchresults (e.g., search results 112C or message data 122D), as describedbelow. Speech recognition module 112 may also detect, within the audiodata, a presence of user 101's utterance of “reply,” which may causecommunications device 110 to execute a message composition action via avirtual assistant or execute a native application associated with acorresponding message (e.g., a text-message application) and generate areply to the corresponding message, as described below.

In other implementations, speech recognition module 112 may detectadditional utterances indicative of user 101's interaction withidentified and presented messages, such as utterances representingfollow-up to a prior utterance and/or that filter the messages includedwithin search results 112C or message data 122D. For example, speechrecognition module 112 may detect user 101's utterance of “read the nextone from Bob,” or “reply to the second one,” and communications device110 may perform any of the exemplary processes described above toidentify and present to user 101 a successive message received from“Bob,” and/or to perform operations that identify and generate a replyto the second message within the set of search results. The disclosedembodiments are, however, not limited to these exemplary commands ordialog-state phrases, and in other aspects, speech recognition module112 may identify any additional or alternative command or dialog-statemessage appropriate to communications device 110 or one or morecross-platform messages, such as “cancel.”

In other instances, and in addition to detecting uttered queries, speechrecognition module 112 may also be configured to detect additional userinquiries that characterize an identified set of cross-platformmessages. For example, speech recognition module 112 may be configuredto detect, within the audio data, inquiries that include, but are notlimited to, inquiries regarding a number of “new” cross-platformmessages (e.g., “how many new emails do I have”), inquiries regardingspecific types of cross-platform messages (e.g., “do I have a new SMS”),inquiries regarding when a specific type of cross-platform message wastransmitted by a particular contact (e.g., “when did Bob text me last”),inquiries regarding whether user 101 replied to a particularcross-platform message or message thread (e.g., “has the ‘my stockslaunch’ thread been updated”), inquiries as to whether user 101 receiveda specific type of cross-platform message (or messages) from a contact(e.g., “has Bob sent an email to me” or “did Bob reply to my last SMS”),and/or inquiries that seek to identify a contact that transmitted arecently received cross-platform message (e.g., “who sent the last chatmessage”). The disclosed embodiments are, however, not limited to theseexemplary inquiries, and in other aspects, speech recognition module 112may be capable of detecting an utterance that include any additional oralternate request to characterize a receive or transmittedcross-platform message appropriate to the message and to communicationsdevice 110.

In other implementations, speech recognition module 112 may beconfigured to detect, within the audio data, inquiries that identify oneor more attributes of the cross-platform messages. For example,inquiries consistent with the disclosed embodiments may include, but arenot limited to, inquiries that request messages with embedded objects orattachment, inquiries that refer to specific types of embedded objectsor attachments, such as images and video, and inquiries that relate tospecific concepts mentioned within the messages.

Search engine 114 may, in some aspects, may parse output data 122A,e.g., as received from speech recognition module 112, and automaticallygenerate one or more of the terms and/or criteria for search query 122Bbased on portion of output data 122A. For example, search engine 114 mayestablish that output data 112A, which includes “show my messages,”corresponds to a request from user 101 to view all cross-platformmessages transmitted by or received at communications device 110, andmay generate an appropriate search term that facilitates a search of allstored messages across any messaging platform.

In other aspects, search engine 114 may establish one or more of thesearch terms and/or criteria in accordance with previously establishedor “default” parameters or values. For example, search engine 114 limitsearch results 122C to those messages transmitted from or received bycommunications device 110 within a predetermined prior time period, suchas fifteen minutes, and search engine 114 may establish an appropriate“default” search term based on this temporal limitation. Search engine114 may, in some aspects, be configured to modify certain ones of thedefault search terms in response to user input received via output data122A (e.g., a portion of the user 101's utterance that requests messageswithin the last thirty minutes) and additionally or alternatively, maybe configured to present user-specific modifications to certain othersof the default search terms (e.g., a limitation on a number of returnedmessages established based on a functionality of communications device110).

In an embodiment, and as described above, search engine 114 may accesscross-platform message storage 116, and based on search query 122B, mayidentify one or more cross-platform messages that are consistent withthe established search terms and/or criteria. For example,cross-platform message storage 116 may include data (e.g., message data)identifying messages (e.g., cross-platform messages) generated by,transmitted from, and received by communications device 110 usingmultiple and different messaging platforms. In other implementations,data identifying one or more of the cross-platform messages generatedby, transmitted from, and received by communications device 110 may bestored in one or more remote data repositories accessible tocommunications device 110 across the network, such as cloud-basedrepositories and repositories associated with the messaging platforms.As described above, these multiple messaging platforms may include, butare not limited to, email applications and clients, social-networkingapplications, text and instant messaging applications, SMS- andMMS-based text messaging, text-, voice-, and/or video-based chatapplications, other communications platforms that facilitate text-,voice-, or video-based communications between one or more individuals.

The message data may, by way of example, include structured data recordsthat, for each of the cross-platform messages, identify a messagedirection (e.g., transmitted or received by communications device 110),a sender and/or a recipient, a timestamp associated with transmission orreceipt, additionally or alternatively, a messaging platform thatfacilitated the transmission or receipt. Additionally, in someinstances, cross-platform message storage 116 may include metadata thatcharacterizes one or more of the cross-platform messages, the storagelocations of which may be linked to corresponding ones of the structureddata records. Further, in certain embodiments, one or more of themultiple messaging platforms may be accessible to an operating system ofcommunications device 110 (e.g., Android™, iOS™, etc.), search engine114 may access the messages transmitted or received by these accessiblemessaging platforms and perform indexing operations on portions of thesemessages, such as the message subjects and message bodies.

In certain aspects, search engine 114 may identify one of more of thecross-platform messages stored within cross-platform message storage 116that are consistent with the search terms and/or criteria. For example,as described above, search engine 114 may determine that output data 122corresponds to a request from user 101 to view all cross-platformmessages transmit by or received at communications device 110, and mayquery cross-platform message storage 116 to identify the requestedcross-platform messages, subject to any of the temporal-based and/orvolume-based restrictions described above.

In other aspects, the search terms of search query 122B may identify aspecific sender or a specific recipient, and additionally oralternatively, a specific messaging platform, and search engine 114 mayaccess the structured data records of cross-platform message storage 116to identify one or more of the cross-platform messages associated withthe specific sender, specific recipient, and/or specific messagingplatform. Further, and as described above, search engine 114 maydetermine, based on output data 122A, that utterance 102 represents arequest by user 101 to view messages that included specific words orphrases within their subject lines or bodies and search engine 114 maygenerate search terms that include the specific words or phrases. Incertain aspects, search engine 114 may access the indexed portions ofthe cross-platform messages, e.g., as stored within cross-platformmessage storage 116, and identify one of more of the cross-platformmessages whose subject lines and/or bodies include the specific words orphrases.

As described above, search engine 114 may obtain search results 122Cthat include message data corresponding to the identified messages(e.g., that are consistent with the search terms of query 122B) andadditionally or alternatively, portions of the identified messages, suchas portions of the subject lines and bodies of the identified messages.By way of example, search engine 114 may extract portions of the messagedata from the structured data records stored within cross-platformmessage storage 116, and the message data within results 122C mayinclude, but is not limited to, data that identifies the sender, therecipient, the messaging platform, and the timestamp for each of theidentified messages. Further, in additional aspects, search engine 144may provide search results 122C, along with additional data identifyingthe terms of search query 122B, to interface generating module 118within as message data 122D.

Interface generating module 118 may generate one or more interfaceelements (e.g., interface elements 122E) that include textual and/orgraphical data that describes the cross-platform messages identifiedwithin search results 122C and further, may generate a unified interfacethat includes the one or interface elements. Interface generating module118 may provide data specifying interface elements 122E and thegenerated unified interface (e.g., data describing a layout andarrangement of interface elements 122E within the unified interface,dimensions of interface elements 122E within the unified interface,shape of interface elements 122E within the unified interface, datadescribing a layout and arrangement of portions of information withininterface elements 122E, etc.) to a presentation device 120 ofcommunications device 110. Presentation device 120 may include, but isnot limited to, a touchscreen display unit, and may be configured torender and present the user interface, which includes portions ofinterface elements 122E, to user 101. In certain aspects, as describedbelow, the unified interface may represent a single, consistentinterface that facilitates not only user 101's inspection of thecross-platform messages that match portions of the spoken query, butalso user 101's interaction with these and other cross-platform messagesbased on spoken input and other input channels.

FIG. 2A illustrates an exemplary interface element 201, which may begenerated by interface generating module 118 and presented within aunified interface 200 by presentation device 120 in accordance with thedisclosed embodiments. In some aspects, communications device 110 maypresent interface element 201 within a corresponding user interface. Asillustrated in FIG. 2A, interface element 201 may be rectangular inshape, and may be characterized by a first dimension 201A established bya lateral dimension of presentation device 120 (e.g., a width of atouchscreen display of communication device 110) and a longitudinaldimension 201B established by interface generating module 118 based onan amount of included content and/or one or more dimensionallimitations. Additionally or alternatively, unified interface 200 mayalso include an additional interface element, e.g., icon 200A,associated with an audio interface, such as a microphone, capable ofdetecting an utterance spoken by user 101. In some aspects, user 101 maytap, touch, or provide other input selecting icon 200A, which may causecommunications device 110 to activate one or more functionalities of theaudio interface, as described above.

By way of example, and upon presentation by presentation device 120,user 101 may perceive that interface element 201 is visually similar inshape and/or size to an index or business card. In view of the perceivedsimilarity, and in certain aspects, one or more of interface elements122E, including interface element 201, may be characterized aselectronic “message” cards that describe one or more cross-platformmessages matching the search query uttered by user 101. The disclosedembodiments are, however, not limited to interface elements having theseexemplary shapes, and in other aspects, interface elements consistentwith the disclosed embodiments may be characterized by any additional oralternate shape appropriate to the cross-platform messages andpresentation device 120, include other regular polygons, circular orellipsoidal shapes, and other user-defined or user-specified shapes.

In some aspects, interface elements 122E may include a message-specificinterface element (e.g., a message card) that identifies and describes acorresponding one of the cross-platform messages included within messagedata 122D. For example, as illustrated in FIG. 2A, interface element 201may corresponding to a message transmitted to user 101 from “RandyWilson” at 11:15 a.m. and including, within the message body, textualdata specifying “Wanna grab a bit to eat at Masa” In some aspects,message data 122D may include, for the transmitted message, dataidentifying the sender, the recipient, the corresponding messagingplatform (e.g., an text-messaging application), and at least a portionof the message body (e.g., “Wanna grab a bit to eat at Masa?”). In someaspects, interface generating module 118 may receive and process messagedata 122D to extract the data identifying the sender, the recipient, thecorresponding messaging platform, and the portion of the message body ofthe transmitted message, and may generate interface element 210 thatinclude portions of the extracted data.

For example, interface element 201 may include textual data identifyingthe sender of the message (e.g., “Randy Wilson”), the recipient (e.g.,“me”), a time of receipt (e.g., “11:28 a.m.”) and the body of themessage (e.g., “Wanna grab a bit to eat at Masa?”). In certain aspects,the sender name (e.g., “Randy Wilson”) may be included within messagedata 122D. In other aspects, however, message data 122D may include anidentifier of the sender within the text-messaging application (e.g., atelephone number, user name, or other handle), and interface generatingmodule 118 (and additionally or alternatively, other modules ofcommunications device 110) may access a contact list or other dataassociated with the text-messaging application and identify the sender'sname based on a correspondence with the sender identifier. Further, insome aspects, when the body of the message exceeds a predetermined size(e.g., a number of characters exceeds a predetermined limit, a number oflines of text exceeds the predetermined limit, a number of words exceedsthe predetermined limit, etc.), interface generating module 118 maytruncate the message body and include only a portion of the message bodywithin an interface element, such as interface element 201 and otherinterface elements described below.

In further aspects, interface generating module 118 may also includegraphical content 210C, such as an avatar or image associated with thesender and an image or icon representative of the text-messagingapplication. By way of example, interface generating module 118 (andadditionally or alternatively, other modules of communications device110) may obtain the avatar or image of the sender, e.g., “Randy Wilson,”from the contact list or other data associated with the text-messagingapplication, and further, may obtain the image or icon representative ofthe text-messaging application from a data repository maintained by anoperating system executed by communications device 110. The disclosedembodiments are, however, interface elements that include theseexemplary data elements, and in other aspects, interface generatingmodule 118 may generate interface element that include any additional oralternate data information that would be appropriate to the identifiedmessages and presentation device 120.

In additional aspects, user 101 may provide input to communicationsdevice 110 that enables user 101 to interact with the message receivedfrom “Randy Wilson” at 11:15 a.m., as described within interface element201. For example, user 101 may utter one or more specific phrases that,upon detection by the audio interface and processing by speechrecognition module 112, cause communications device 110 to execute thecorresponding text-messaging application and interact with the receivedmessage. For example, user 101 may utter the term “Reply,” and upondetection by the audio interface and processing by speech recognitionmodule 112, communications device 110 may execute the text messageapplication and enable user 101 to provide additional input in responseto the message. In additional or alternate aspects, user 101 may touch,tap, or otherwise content a surface of presentation device 120 (e.g., atouchscreen display) associated with a region 200B of unified interface200, and in response to the detected input, communications device 110may execute the text message application and enable user 101 to provideadditional input in response to the message. The disclosed embodimentsare, however, not limited to these additional input types and theseexemplary operations, and in other aspects, communications device 110may enable user 101 to provide any additional or alternate spoken ormanual input to perform any additional or alternate operationsassociated with the cross-platform message, such as “delete,” “forward,”etc.

As described above, message data 122D may include data identifying oneor more cross-platform messages (e.g., the message from “Randy Wilson”described above) that are consistent with the search query uttered byuser 101. Depending on a breadth of the uttered search query, the numberof identified cross-platform messages that are consistent with theuttered search query may be large, and the dimensions of presentationdevice 120 may render impractical the generation of a unified interfaceincluding message-specific interface elements that characterize each ofthe identified messages. In certain aspects, and in addition to or as analternate to the message-specific interface elements described above,interface generating module 118 may also generate a platform-specificinterface element, e.g., a digest card, that includes textual andgraphical content characterizing multiple messages received by ortransmitted from communications device 110 using a corresponding one ofthe messaging platforms.

In one aspect, and based on message data 122D, interface generatingmodule 118 may selectively generate message-specific andplatform-specific interface elements based on the number of identifiedcross-platform messages that are consistent with the uttered searchquery. For example, interface generating module 118 (and additionally oralternatively, other modules of communications device 110) may establishthat user 101 is capable of readily viewing a threshold number ofdistinct, message-specific interface element (e.g., message cards)within presentation device 120 of communications device 110,communications device 110 may store data indicative of the thresholdinterface-element number within a locally accessible data repository.Interface generating module 118 may, in certain aspects, determine thenumber of discrete cross-platform messages included within message data122D, and when the determined number falls below the establishedthreshold number, interface generating module 118 may elect to generatemessage cards for each of cross-platform messages using any of theexemplary processes described herein. Alternatively, if interfacegenerating module 118 were to determine that the determined numberexceeds the established threshold number, interface generating module118 may elect to generate one or more digest cards that include textualand graphical content summarizing groups of the cross-platform messagesassociated with corresponding ones of the messaging platforms.

For instance, as described above, search query 122B may correspond to arequest from user 101 to view all cross-platform messages transmitted byor received at communications device 110 within a prior temporalinterval, e.g., thirty minutes. By way of example, search engine 114 mayidentify fourteen cross-platform messages received and/or transmitted bycommunications device 110 within the last thirty minutes, and thesecross-platform messages may include three messages received using atext-messaging application and eleven messages received by using anemail application, such as Gmail™. Search engine 114 may provide dataassociated with these fourteen messages (e.g., sender, recipient,messaging platform, message content, etc.) to interface generatingmodule 118 within message data 122D using any of the exemplary processesdescribed above, and may determine that these fourteen messages exceedthe threshold number of messages that trigger the generation ofplatform-specific interface elements (e.g., seven messages).

In certain aspects, and based on the determination, interface generatingmodule 118 may generate a first digest card that identifies andsummarizes the three cross-platform messages received using thetext-messaging application, and a second digest card that identifies andsummarizes the eleven cross-platform messages received using the emailapplication. For example, message data 122D may include text messagestransmitted from “Mike,” “Bill,” and “Margaret” to user 101 using thetext-messaging application, and message data 112D may include, for eachof these three messages, data identifying the sender (e.g., “Mike,”“Bill,” or “Margaret”), the recipient (e.g., user 101), thecorresponding messaging platform (e.g., the text-messaging application),and a portion of the corresponding message bodies.

Interface generating module 118 may access message data 122D and extractthe data identifying the sender, the recipient, the correspondingmessaging platform, and the portion of the message body for each of thethree text-messages. In certain aspects, illustrated in FIG. 2B,interface generating module 118 may generate the first digest card(e.g., digest card 202) that identifies and summarizes the threecross-platform messages received using the text-messaging application,which may be presented to user 101 within unified interface 200 bypresentation device 120. For instance, in FIG. 2B, digest card 202 mayinclude an icon or image 202A that identifies the text-messagingapplication (e.g., as maintained by communication device 110's operatingsystem within a corresponding data repository), and content 202B, 202C,and 202D, that identifies the text messages transmitted, respectively,by “Mike,” “Bill,” and “Margaret” to user 101. By way of example,content 202B, 202C, and 202D may identify a corresponding one of thesenders (e.g., “Mike,” “Bill,” or “Margaret”) and portions of thecorresponding message bodies, which may be truncated depending on alength of the message body and a dimension of interface element 202.Additionally, digest card 202 may also include a time stamp 202E, whichmay specify an earliest one of the receipt times of three text-messages(e.g., as extracted by interface generating module 118 from message data122D).

Additionally, in some aspects, interface generating module 118 mayaccess message data 122D and extract the data identifying the sender,the recipient, the corresponding messaging platform, and the messagebody portion for each of the eleven messages received through the emailapplication. Using any of the exemplary processes described above,interface generating module 118 may generate the second digest card(e.g., digest card 204) that identifies and summarizes the elevencross-platform messages received using the text-email application, whichmay also be presented to user 101 within unified interface 200 bypresentation device 120. Digest card 204 may include content associatedwith the eleven email messages that is similar to the text-messagecontent described above with respect to digest card 202, and digest card204 may also include an icon or image associated with the emailapplication and a time stamp specifying an earliest one of the receipttimes of eleven email messages. Further, although described in terms oftextual and graphical content, the disclosed embodiments are not limitedto digest cards and platform-specific interface elements that includethis exemplary content, and in other aspects, the disclosed digest cardsmay include any additional or alternate elements of textual or graphicalcontent appropriate to the cross-platform messages and to presentationdevice 120.

In further embodiments, user 101 may view digest card 202, and may wishto obtain more detailed information that characterizes each of the threetext messages received from “Mike,” “Bill,” and “Margaret.” In certainaspects, illustrated in FIG. 2C, user 101 may provide additional inputrelated to digest card 202 (e.g., the platform-specific interfaceelement summarizing cross-platform messages received via thetext-messaging application), which may cause interface generating module118 to generate additional interface elements that characterizecorresponding ones of the three text messages received from “Mike,”“Bill,” and “Margaret,” and provide these additional interface elements(e.g., interface elements 122E) to presentation device 120 for renderingand presentation to user 101.

For example, as illustrated in FIG. 2C, user 101 may touch or tap asurface of presentation device 120 corresponding to a particular region210 of digest card 202, and in response to the received input, interfacegenerating module 118 may generate message cards 222, 224, and 226 thatinclude content describing corresponding ones of text messages 202B,202C, and 202D, and may provide message cards 222, 224, and 226 (andadditionally or alternatively, data describing a dimension, layout,and/or format of message-specific interface elements 222, 224, and 226)to presentation device 120, which may render and present message cards222, 224, and 226 to user 101 through unified interface 200.

In certain aspects, the content of message cards 222, 224, and 226 maybe similar to that described above in reference to message card 201, andmay include, for example, content identifying the senders (e.g., “Mike,”“Bill,” or “Margaret”), the recipient (e.g., user 101), the messagingplatform (e.g., the text-messaging application), and portions of thebodies of the corresponding text messages. The portions of thetext-message bodies included within message cards 222, 224, and 226 mayinclude textual content (e.g., in message cards 222 and 224), image data(e.g., in message card 226), video content, and any additional oralternate multimedia content appropriate to interface generating module118 and presentation device 120. In further aspects, however, interfacegenerating module 118 may be configured to exclude the image, video, andother multimedia content within these and other messages from the digestcards (e.g., digest cards 202 and 204), and instead includepredetermined text to indicate, to user 101, the presence of mage,video, and/or multimedia content within the underlying messages (e.g.,“image” text in digest card 202 of FIGS. 2B and 2C).

In certain embodiments described above, an utterance spoken by user 101corresponds to a request to view all cross-platform messages transmittedby or received at communications device 110 during a particular temporalinterval, e.g., thirty minutes. The disclosed embodiments are, however,not limited to these exemplary requests, and in other aspects, searchqueries consistent with the disclosed embodiments may specify anyadditional or alternate characteristic of the stored cross-platformmessages, which may include a particular sender and/or receiver, aparticular messaging platform, a presence of words or phrases withincorresponding message subjects or message bodies, and/or a particulardate range.

For example, user 101 may, through presentation device 120 ofcommunications device 110, view the message and/or digest cards thatcharacterize the cross-platform messages received during the past thirtyminutes. As a follow-up to user 101's prior query, or an alternative touser 101's prior query, user 101 may utter a request to view thosemessages sent to user 101 by a particular individual, e.g., “RandyWilson,” during the past thirty minutes. Using any of the exemplaryprocesses, the audio interface of communications device 110 may captureand provide the uttered request (e.g., as utterance 102) to speechrecognition module 112, which may generate output data corresponding tothe spoken request and provide that output data to search engine 114.Further, and using the exemplary processes described above, searchengine 114 may process the output data to generate terms and/or criteriaof a corresponding search request (e.g., terms of search request 122B,which may identify the sender “Randy Wilson,” the particular timeperiod, and that results should not be limited to particular messagingplatforms), access cross-platform message storage 116, and obtain dataidentifying all cross-platform messages sent to user 101 by “RandyWilson” within the last thirty minutes (e.g., as search results 122C).

In some instances, and consistent with the processes described above,search engine 112 may provide portions of the obtained message data andinformation identifying the terms of search query 122B to interfacegenerating module 118 (e.g., as message data 122D). For example, messagedata 122D may include data that identifies the sender (e.g., “RandyWilson”), the recipient (e.g., user 101), a messaging platform, a timestamp, and message portions for six cross-platform messages transmittedfrom “Randy Wilson” to user 101 during the last thirty minutes. Asoutlined above, interface generating module 118 may access thepreviously established threshold number of messages that trigger ageneration of platform-specific interface elements, and may compare thatthreshold number against the number of cross-platform messages inmessage data 122D.

As described above, the threshold number may include seven messages, andas message data 122D includes six cross-platform messages, interfacegenerating module 118 may elect to generate message-specific interfaceelements, e.g., message cards, corresponding to each of the sixcross-platform messages using any of the exemplary processes describedabove. Interface generating module 118 may also provide data associatedwith the generated interface elements (e.g., interface elements 122E) topresentation device 120, which may present the generated message cardsto user 101 within a unified interface.

By way of example, FIG. 3 illustrates additional exemplary portions ofunified interface 200, in accordance with the disclosed embodiments. Forexample, as illustrated in FIG. 3, interface generating module 118 maygenerate message cards 302, 304, 306, 308, and 310, which includeinformation and content that describes and characterizes correspondingones of the cross-platform messages transmitted to user 101 by “RandyWilson” during the past thirty minutes. For example, message cards 302,306, and 310 may correspond to text messages received from “RandyWilson” using various text-messaging applications, and message cards 304and 308 may correspond to email messages received from “Randy Wilson”using various email applications. In certain aspects, each of messagecards 302, 304, 306, 308, and 310 may include content similar to thatdescribed above in reference to message card 201, which includes, but isnot limited to, a sender, a recipient, a corresponding messagingplatform, and a portions of a corresponding message body or a messagesubject.

In certain aspects, interface generating module 118 and/or presentationdevice 120 may arrange message cards 302, 304, 306, 308, and 310 withinunified interface 200 chronologically in order of their receipt by ortransmission from communications device 110. Further, in additional oralternate aspects, interface generating module 118 and/or presentationdevice 120 may arrange message cards 302, 304, 306, 308, and 310 inorder according to their corresponding messaging platforms or based onany additional or alternate message characteristics, includingcombinations of characteristics such as receipt or transmission time,sender, recipient, messaging platform and/or relevance to the user'squery.

In some embodiments, presentation device 120 may be insufficiently largeto simultaneously present message cards 302, 304, 306, 308, and 310 touser 101 at any meaningful display resolution. In certain aspects,depicted in FIG. 3, presentation device 120 may present a subset ofmessaging cards 302, 304, 306, 308, and 310 within a particular viewingpane of unified interface 200 (e.g., messaging card 302 and a portion ofmessaging card 304 in FIG. 3), and user 101 may scroll throughadditional viewing panes of unified interface 200 to view additionalsubsets of messaging cards 302, 304, 306, 308, and 310 (e.g., bycontacting a surface of a touchscreen display with a fingertip orstylus, and subsequent moving the fingertip or stylus across the surfacealong direction 320).

In other embodiments, and to address the potential inability ofpresentation device 120 to simultaneously present multiple message cards(e.g., message-specific interface elements), interface resolution module118 may be configured to generate a merged interface element (e.g., amerged message card) that describes multiple cross-platform messagesthat are consistent with the uttered search query and are transmittedfrom and/or received by communications device 110 within a predeterminedtime period. For example, as illustrated in FIG. 4A, interfacegenerating module 118 may generate message cards 402, 404, and 406include content describing and characterizing text messages receivedfrom “Randy Wilson” using a text-messaging application at 11:27 a.m.,11:28 a.m., and 11:31 a.m., respectively. Presentation device 120 may,for example, sort and present these message cards within unifiedinterface 200 in order of their times of receipt, or in accordance withany additional or alternate message characteristic or combinations ofmessaging characteristics.

In certain aspects, interface generating module 118 (and additionally oralternatively, any other component of communications device 110) maydetermine that communications device 110 received the text messagesassociated with message cards 402, 404, and 406 (e.g., as received from“Randy Wilson”) within the predetermined time period. For example, thepredetermined time period may corresponding to a time period of fiveminutes, and interface generating module 118 may determine thatcommunication device 110 received the first text message (e.g.,corresponding to message card 402) at 11:27 a.m., and received thesecond and third text messages (e.g., corresponding to message cards 404and 406) within the five-minute time period the initial text message. Incertain aspects, a value of the predetermined time period may beestablished and/or modified by interface generating module 118 (andadditionally or alternatively, another component of communicationsdevice 110) to capture multiple related text messages related to aparticular topic of discussion between user 101 and one or more otherindividuals, and although described in terms of a five-minute interval,predetermined time periods consistent with the disclosed embodiments mayinclude any additional or alternate appropriate temporal intervalcapable of capturing exchanges of successive and related cross-platformmessages.

In an embodiment, and responsive to the determination thatcommunications device 110 received the three text messages within thepredetermine time period, interface generating module 118 may generate amerged interface element, e.g., merged message card 410, that includesdata identifying and describing each of the three text messages, asillustrated in FIG. 4B. For example, in FIG. 4B, merged message card 410may include message data 410A, which includes portions of the bodiesand/or subjects of each of the three messages, and time stamp 410B,which corresponding to a time at which communications device 110received the first or final of the three text messages (e.g.,corresponding to message card 406). In some instances, interfacegenerating module 118 may arrange the portions of the message bodiesand/or subjects within message data 410A based on a chronological orderin which communications device 110 received the corresponding textmessages. Additionally or alternatively, merged message card 410 mayinclude data identifying the sender (e.g., “Randy Wilson”), an avatar orimage associated with the sender, data identifying the recipient (e.g.,user 101), and an icon or image associated with the messaging platform,as described above.

In certain of the disclosed embodiments, an utterance spoken by user 101corresponds to a request from to view all cross-platform messagestransmitted by or received at communications device 110 during aparticular temporal interval, e.g., thirty minutes, or received atcommunications device 110 from a particular sender during that temporalinterval. As described above, however, the disclosed embodiments are notlimited to these exemplary requests, and in other aspects, searchqueries consistent with the disclosed embodiments may specify anyadditional or alternate characteristic of the stored cross-platformmessages, which may include a particular recipient, a particularmessaging platform, a presence of words or phrases within correspondingmessage subjects or message bodies, and/or a particular date range.Further, in additional aspects, the disclosed embodiments may alsoidentify, and present to user 101, one or more cross-platform messagesthat match combinations of the exemplary search terms described above.

For example, user 101's uttered search query may represent a request toview all cross-platform messages received from a particular sender(e.g., “Liz Day”) within a particular time period (e.g., thirty minutes)that include specific words or phrases within their subject lines orbodies (e.g., the word “Tahoe”). Using any of the exemplary processes,the audio interface of communications device 110 may capture and providethe uttered request (e.g., as utterance 102) to speech recognitionmodule 112, which may generate output data (e.g., output data 122A)corresponding to the spoken request and provide that output data tosearch engine 114. Further, and using any of these exemplary processes,search engine 114 may obtain and provide to interface generating module118 messaging data (e.g., message data 122D) that identifying one ormore cross-platform messages that include the word “Tahoe” and werereceived from sender “Liz Day” within the last thirty minutes. Asdescribed above, message data 122D may include, for each of theidentified cross-platform messages, data that identifies the sender(e.g., “Liz Day”), the recipient (e.g., user 101), a messaging platform,a time stamp, and portions of the identified cross-platform messagesthat include the word “Tahoe.” Further, in certain aspects, messagingdata 122D may also identify one or more terms and/or criteria of theuttered search query, including the specified sender, the specified word(e.g., “Tahoe”), and/or the specified time period (e.g., thirtyminutes).

In some instances, and based on a number of identified message,interface generating module 118 may generate one or moreplatform-specific interface elements (e.g., digest cards) and/ormessage-specific interface elements (e.g., message cards) thatcharacterize and describe the identified cross-platform messages usingany of the exemplary techniques described above. For example, messagedata 122D may identify a single cross-platform message associated withthe specified sender, e.g., “Liz Day,” that that includes the specifiedword, e.g., “Tahoe,” and as illustrated in FIG. 5, interface generatingmodule 118 may generate a single message card 502 for presentationwithin unified interface 200 by presentation device 120. In someaspects, as described above, message card 502 may include dataidentifying the sender (e.g., “Liz Day”), an avatar or image associatedwith the sender, data identifying the recipient (e.g., user 101), and anicon or image associated with the messaging platform. Further, in FIG.5, message card 502 may also include a portion of the identified messagethat includes the specified word “Tahoe,” and interface generatingmodule 118 may generate and transmit data instructing presentationdevice 120 to modify a visual characteristic of the specified workwithin the presented message portions. For example, interface generatingmodule 118 may instruct presentation device 120 to highlight textportions 502A and 502B as bolded text, which represent portions of thepresented message body that include the word “Tahoe.” The disclosedembodiments are, however, not limited to processes present specifiedwords within the message body using bold text, and in other aspects,interface generating module 118 may instruct presentation device 120 tomodify any additional or alternate visual characteristic of thepresented message portions to highlight a presence of specific words orphrases to user 101, include underlying portions of text, a modificationto text color, and/or a modification to a font or a font size.

FIG. 6 is a flowchart of an exemplary process 600 for cross-platformsearching of generated messages in response to a single user query, inaccordance with the disclosed embodiments. In certain aspects, acommunications device (e.g., communications device 110) may perform thesteps of exemplary process 600, which may enable communications device110 to generate terms and/or criteria of a search query based on user101's spoken utterances, identify multiple cross-platform messages basedon the generated terms and/or criteria, and present a single interfacethat enables user 101 to interact with identified messages generated bymultiple messaging platforms.

As described above, communications device 110 may provide functionalitythat enables user 101 generate and receive messages using a number ofdifferent messaging platforms, including, but not limited to, variousemail applications, instant messaging applications, SMS- and/orMMS-based text messaging, social-networking applications, and othercommunications platforms that facilitate text-, voice-, or video-basedcommunications between one or more individuals. In certain aspects,communications device 110 (and additionally or alternatively, othercomputing systems connected to communications device 110 across acommunications network) may store data identifying portions of thesegenerated, transmitted and/or received messages. The stored data, e.g.,message data, may include structured data stored in a format consistentwith the native messaging platforms and/or metadata characterizing thetransmitted and/or received messages. In some aspects, communicationsdevice 110 may provide operations that, in response to a user-specifiedquery, parse locally stored and/or remotely accessible message data toidentify one or more messages generated across the various messagingplatform (e.g., cross-platform messages) that are consistent with theuser-specified query.

By way of example, in step 602, communication device 110 receive theuser-specified query, which may specify various search terms and searchcriteria, and which may corresponding to a request by user 101 to accessand interact with various cross-platform messages that are consistentwith the specified search terms and search criteria. The specifiedsearch terms and/or search criteria may include, but are not limited to,a request to identity cross-platform messages associated with aparticular sender and/or receiver, a particular messaging platform, apresence of words or phrases within corresponding message subjects ormessage bodies, and/or a particular range of transmission and/or receiptdates. In other instances, the search query may be open-ended and, forexample, may request access to all cross-platform messages transmittedfrom or received by communications device 110 during a particular timeperiod.

In certain aspects, communications device 110 may receive the searchquery based on one or more utterances spoken by user 101 and captured byan audio interface of communications device 110, such as a microphone.For example, user 101 may activate the audio interface, and may utterone or more phrases that, collectively, establish the user-specifiedquery and user specified search terms and/or criteria. The audiointerface may detect the spoken words and phrases (e.g., utterance 102),and may capture audio data that includes the spoken words and phrases.In some aspects, and using any of the exemplary processes describedabove, communications device 110 (e.g., using speech recognition module112) may process the captured audio data and generate correspondingtextual output data, which may include the user-specified search termsand/or criteria.

Further, communications device 110 may access one or more repositoriesof stored cross-platform message data (e.g., in step 604), and based onthe user-specified search terms and/or criteria, may obtain at least aportion of the stored cross-platform message data that corresponds tothe received search query (e.g., in step 606). By way of example,communications device 110 may store data associated with one or morecross-platform messages transmitted from or received by communicationsdevice within a locally accessible data repository (e.g., cross-platformmessage storage 116 of FIG. 1). In certain aspects, in steps 604 and606, communications device 110 may perform operations (e.g., via searchengine 114 of FIG. 1) that access cross-platform message storage 116,identify one or more of the stored cross-platform messages based on theuser-specified search terms and/or criteria, and obtain portions of themessage data that describe the one or more identified cross-platformmessages.

In other aspects, additional cross-platform message data may be storedremotely in computing systems connected to communications device 110across a corresponding communications network, such as computing system130. For example, computing system 130 be maintained by or associatedwith one or more of the multiple messaging platforms (e.g., cloud-basedstorage associated with or maintained by the messaging platforms), andin step 604 and 606, communications device 110 may perform additionaloperations that access computing system 130, identify additional storedcross-platform messages based on the user-specified search terms and/orcriteria, and obtain portions of the stored message data that describethese additional cross-platform messages.

Communications device 110 may, in certain aspects, perform operations(e.g., using interface generating module 118) that identify a number ofcross-platform messages described within the obtained messaging data(e.g., in step 608) and further, that identify the messaging platformsassociated with these cross-platform messages (e.g., in step 610). Insome instances, the obtained message data may include structured datarecords that, for each of the identified cross-platform messages,specify a message direction (e.g., transmitted or received bycommunications device 110), a sender, a recipient, a timestampassociated with transmission or receipt, and/or a messaging platformthat facilitated the transmission or receipt. The obtained message datamay also include metadata associated with the one or more of thecross-platform messages, and certain instances, portions of theidentified cross-platform messages, such as the message subjects andmessage bodies (e.g., when an operating system of communications device110 is capable of accessing and indexing corresponding ones of themultiple messaging platforms. Further, using any of the exemplaryprocesses described above, communications device 110 may generate one ormore interface elements that describe corresponding ones of thecross-platform message, and additionally or alternatively, summarizegroups of cross-platform messages generated by corresponding ones of themessaging platforms (e.g., in step 612).

For example, in step 612, communications device 110 may generatemessage-specific interface elements (e.g., message cards) that identifyand characterize the contents of corresponding ones of thecross-platform messages using any of the exemplary processes describedabove. Message cards consistent with the disclosed embodiments mayinclude, for example, data identifying corresponding senders, an avataror image associated with the sender, data identifying the recipient(e.g., user 101), and/or an icon or image associated with the messagingplatform. Additionally, in some instances, the generated message cardsmay include textual, image, video, and/or other multimedia data includedwithin the bodies of corresponding ones of the cross-platform message.Further, in some aspects, when a body of a cross-platform messageexceeds a predetermine size (e.g., a number of characters exceeds apredetermined limit, a number of lines of text exceeds the predeterminedlimit, a number of words exceeds the predetermined limit, etc.),communications device 110 (e.g., using interface generating module 118)may perform operations that truncate the message body and include only aportion of the message body within a corresponding message card, asdescribed above.

In additional instances, and using any of the exemplary processesdescribed above, communications device 110 (e.g., using interfacegenerating module 118) may also perform operations that merge togethermultiple message cards and generate a single interface element (e.g., a“merged” message card) that represents each of the multiple messagecards. For example, communications device 110 may merge togethermultiple message cards when the communications device 110 received ortransmitted the cross-platform messages represented by these messagecards within a predetermined time period.

Further, and using any of the exemplary processes described above,communications device 110 may generate one or more platform-specificinterface elements, e.g., digest cards, that include textual and/orgraphical content characterizing multiple messages received by ortransmitted from communications device 110 using corresponding ones ofthe messaging platforms. For example, each of the digest cards may beassociated with a particular messaging platform, and may include contentthat summarizes groups of the identified cross-platform messages thatwere generated, transmitted, or received using the particular messagingplatform. The disclosed embodiments are, however, not limited to digestcards that include platform-specific interface elements. In additionalimplementations, one or more of the device cards may include interfaceelements representative of cross-platform messages associated with,among other things, common senders, common recipients, and common rangesof transmission dates or receipt dates.

In an embodiment, communication device 110 may selectively generatemessage cards and digest cards in step 612 based on the number ofidentified cross-platform messages that are consistent with theuser-specified search terms and/or criteria. For example, and using anyof the exemplary processes described above, communications device 110may establish that user 101 is capable of readily viewing a thresholdnumber of distinct message cards within presentation device 120 ofcommunications device 110, and may determine whether the number ofdiscrete cross-platform messages within the obtained message dataexceeds the established threshold number (e.g., as identified in step308). When the number of cross-platform messages falls below theestablished threshold number, communications device 110 may elect togenerate message cards for each of cross-platform messages using any ofthe exemplary processes described above. Alternatively, ifcommunications device 110 were to determine that the number ofcross-platform messages exceeds the established threshold number,communications device 110 may elect to generate one or more digest cardsthat include textual and graphical content summarizing groups of thecross-platform messages associated with corresponding ones of themessaging platforms.

In some aspects, communications device 110 may generate a unifiedinterface that includes the one or more generated interface elements,which include, but are not limited to, one or more of the message cards,merged message cards, and/or digest cards (e.g., in step 614). Forexample, and in addition to data specifying the content included withineach of the message cards, merged message cards, and/or digest cards anda layout of the content within the each of the message cards, mergedmessage cards, and/or digest cards, communications device 110 may alsogenerate data describing a layout and arrangement of the generatedinterface elements within the unified interface, dimensions of thegenerated interface elements within the unified interface, and/or shapesof the generated interface elements within the unified interface.Communications device 110 may process the generated data and render theunified interface, and the constituent interface elements, forpresentation to user 101 through a corresponding presentation device,such as a touchscreen display of communication device 110 (e.g., in step616).

Furthermore, and as described above, user 101 may utter words or phrasesthat specify additional search terms and/or criteria to limit theprevious search query. For example, and using any of the processesdescribed above, communications device 110 may present, to user 101, anunified interface that identifies multiple cross-platform messagesreceived by communications device 110 during the last thirty minutes.Upon review of these cross-platform messages, user 101 may utter anadditional search query that requests messages received within the lastthirty minutes that are associated with a particular sender, with aparticular messaging platform, or include specified words or phrases.

In some aspects, communications device 110 may determine whether theaudio interface (e.g., the microphone) detect an additional search queryuttered by user 101 (e.g., in step 618). If communications device 110were to determine that the audio interface captured audio dataspecifying additional search terms and/or criteria (e.g., step 618;YES), exemplary process 600 may pass back to step 612, andcommunications device 110 may establish the additional search termsand/or criteria based on user 101's spoken utterances, identifyadditional or alternate cross-platform messages based on the generatedterms, and generate, via a presentation device, a single interface thatenables user 101 to interact with additional or alternate messages usingany of the exemplary processes described above.

Alternatively, if communications device 110 fails to detect anyadditional utterances (e.g., step 618; NO), then exemplary process 600is complete in step 620.

In certain implementations, and as described above, communicationsdevice 110 may identify one or more cross-platform messages thatcorrespond to a generated search query, and may generate interfaceelements, e.g., interface elements 122E, for presentation to user 101through a graphical user interface, e.g., using presentation device 120.The disclosed embodiments are, however, not limited to graphicalrepresentations of portion of the identified cross-platform references,and in other implementations, communications device 110 may provide avoice-user interface (VUI) that generates and presents to user 101 andallows user 101 to interact with the presented representations throughan ongoing, non-linear dialogue.

For instance, and using any of the exemplary processes described above,communications device 110 may identify one or more cross-platformmessages that are consistent with a user-specified search query. Incertain implementations, interface generating module 118, andadditionally or alternatively, a text-to-speech module or a speechgeneration module (not shown in FIG. 1) may generate an auralrepresentation of the identified cross-platform messages, andcommunications device 110 may present the aural representation to user101 through the speaker or other interface. By way of the example, thepresented aural representation may “read” the contents of the identifiedcross-platform messages to user 110, and in response to the presentedaural representation, speech recognition module 112 may detectadditional utterances indicative of user 101's interaction withpresented cross-platform messages. For example, and as described above,these additional utterances may represent a follow-up to a priorutterance (e.g., “read the next one from Bob”), a request to filter themessages included within search results 112C or message data 122D (e.g.,“read me messages received today’), and/or a request to perform aspecific operation on one or more of the identified cross-platformmessages (e.g., “reply to the second one”), and communications device110 may perform any of the exemplary processes described above toperform operations consistent with the additional detected utterances.

In other aspects, and as part of the ongoing, non-linear dialog,communications device 110 may perform operations that generate, e.g.,using the TTS module, and present to user 101 through the audiointerface additional aural content associated with one or more expecteduser responses. For example, the additional aural content may include aspecific question (e.g., requesting clarification regarding a requestedcross-platform message associated with similarly named senders)associated with an answer having expected content and/or an expectedformat. If an additional utterance detected and processed bycommunications device 110 lacks that expected value or format,communications device 110 may generate and present to user 110 follow-upaural content that poses a variation of the question and/or includesadditional context. In certain aspects, and using any of the exemplaryprocesses described above, communications device 110 may repeatedlygenerate and present to user 110 aural content that poses the question,with additional or alternate variations and/or content, in an attempt toelicit an utterance having the expected content or format,

Additionally, in certain implementations described above, communicationsdevice 110 may perform operations that, responsive to a user's query,search messaging data generated across multiple messaging platforms andpresent one or more cross-platform messages that are consistent with thesearch query to a user via a graphical user interface (GUI) or avoice-user interface (VUI). In other implementations, certain functionsperformed by communications device 110, including certain functions ofspeech recognition module 112, search engine 114, interface generatingmodule 118, the text-to-speech (TTS) module, and/or the speechgeneration module, may be performed by other communications devicesconnected to communications device 110 across the network, andadditionally or alternatively, by other cloud-based computing systemsand servers. Further, in other implementations, data identifying one ormore of the cross-platform messages generated by, transmitted from, andreceived by communications device 110 may be stored in one or moreremote data repositories accessible to communications device 110 acrossthe network, such as cloud-based repositories and repositoriesassociated with the messaging platforms.

FIG. 7 is a block diagram of computing devices 700, 750 that may be usedto implement the systems and methods described in this document, aseither a client or as a server or plurality of servers. Computing device700 is intended to represent various forms of digital computers, such aslaptops, desktops, workstations, personal digital assistants, servers,blade servers, mainframes, and other appropriate computers (e.g.,computing system 130 of FIG. 1). Computing device 750 is intended torepresent various forms of mobile devices, such as personal digitalassistants, cellular telephones, smartphones, and other similarcomputing devices (e.g., communications device 110 of FIG. 1).Additionally computing device 700 or 750 can include Universal SerialBus (USB) flash drives. The USB flash drives may store operating systemsand other applications. The USB flash drives can include input/outputcomponents, such as a wireless transmitter or USB connector that may beinserted into a USB port of another computing device. The componentsshown here, their connections and relationships, and their functions,are meant to be exemplary only, and are not meant to limitimplementations of the inventions described and/or claimed in thisdocument.

Computing device 700 includes a processor 702, memory 704, a storagedevice 706, a high-speed interface 708 connecting to memory 704 andhigh-speed expansion ports 710, and a low speed interface 712 connectingto low speed bus 714 and storage device 706. Each of the components 702,704, 706, 708, 710, and 712, are interconnected using various busses,and may be mounted on a common motherboard or in other manners asappropriate. The processor 702 can process instructions for executionwithin the computing device 700, including instructions stored in thememory 704 or on the storage device 706 to display graphical informationfor a GUI on an external input/output device, such as display 716coupled to high speed interface 708. In other implementations, multipleprocessors and/or multiple buses may be used, as appropriate, along withmultiple memories and types of memory. Also, multiple computing devices700 may be connected, with each device providing portions of thenecessary operations (e.g., as a server bank, a group of blade servers,or a multi-processor system).

The memory 704 stores information within the computing device 700. Inone implementation, the memory 704 is a volatile memory unit or units.In another implementation, the memory 704 is a non-volatile memory unitor units. The memory 704 may also be another form of computer-readablemedium, such as a magnetic or optical disk.

The storage device 706 is capable of providing mass storage for thecomputing device 700. In one implementation, the storage device 706 maybe or contain a computer-readable medium, such as a floppy disk device,a hard disk device, an optical disk device, or a tape device, a flashmemory or other similar solid state memory device, or an array ofdevices, including devices in a storage area network or otherconfigurations. A computer program product can be tangibly embodied inan information carrier. The computer program product may also containinstructions that, when executed, perform one or more methods, such asthose described above. The information carrier is a computer- ormachine-readable medium, such as the memory 704, the storage device 706,or memory on processor 702.

The high speed controller 708 manages bandwidth-intensive operations forthe computing device 700, while the low speed controller 712 manageslower bandwidth-intensive operations. Such allocation of functions isexemplary only. In one implementation, the high-speed controller 708 iscoupled to memory 704, display 716 (e.g., through a graphics processoror accelerator), and to high-speed expansion ports 710, which may acceptvarious expansion cards (not shown). In the implementation, low-speedcontroller 712 is coupled to storage device 706 and low-speed expansionport 714. The low-speed expansion port, which may include variouscommunication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet)may be coupled to one or more input/output devices, such as a keyboard,a pointing device, microphone/speaker pair, a scanner, or a networkingdevice such as a switch or router, e.g., through a network adapter.

The computing device 700 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 720, or multiple times in a group of such servers. Itmay also be implemented as part of a rack server system 524. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 722.

Alternatively, components from computing device 700 may be combined withother components in a mobile device (not shown), such as device 750.Each of such devices may contain one or more of computing device 700,750, and an entire system may be made up of multiple computing devices700, 750 communicating with each other.

Computing device 750 includes a processor 752, memory 764, aninput/output device such as a display 754, a communication interface766, and a transceiver 768, among other components. The device 750 mayalso be provided with a storage device, such as a microdrive or otherdevice, to provide additional storage. Each of the components 750, 752,764, 754, 766, and 768, are interconnected using various buses, andseveral of the components may be mounted on a common motherboard or inother manners as appropriate.

The processor 752 can execute instructions within the computing device750, including instructions stored in the memory 764. The processor maybe implemented as a chipset of chips that include separate and multipleanalog and digital processors. Additionally, the processor may beimplemented using any of a number of architectures. For example, theprocessor 702 may be a CISC (Complex Instruction Set Computers)processor, a RISC (Reduced Instruction Set Computer) processor, or aMISC (Minimal Instruction Set Computer) processor. The processor mayprovide, for example, for coordination of the other components of thedevice 750, such as control of user interfaces, applications run bydevice 750, and wireless communication by device 750.

Processor 752 may communicate with a user through control interface 758and display interface 756 coupled to a display 754. The display 754 maybe, for example, a TFT (Thin-Film-Transistor Liquid Crystal Display)display or an OLED (Organic Light Emitting Diode) display, or otherappropriate display technology. The display interface 756 may compriseappropriate circuitry for driving the display 754 to present graphicaland other information to a user. The control interface 758 may receivecommands from a user and convert them for submission to the processor752. In addition, an external interface 762 may be provide incommunication with processor 752, so as to enable near areacommunication of device 750 with other devices. External interface 762may provide, for example, for wired communication in someimplementations, or for wireless communication in other implementations,and multiple interfaces may also be used.

The memory 764 stores information within the computing device 750. Thememory 764 can be implemented as one or more of a computer-readablemedium or media, a volatile memory unit or units, or a non-volatilememory unit or units. Expansion memory 774 may also be provided andconnected to device 750 through expansion interface 772, which mayinclude, for example, a SIMM (Single In Line Memory Module) cardinterface. Such expansion memory 774 may provide extra storage space fordevice 750, or may also store applications or other information fordevice 750. Specifically, expansion memory 774 may include instructionsto carry out or supplement the processes described above, and mayinclude secure information also. Thus, for example, expansion memory 774may be provide as a security module for device 750, and may beprogrammed with instructions that permit secure use of device 750. Inaddition, secure applications may be provided via the SIMM cards, alongwith additional information, such as placing identifying information onthe SIMM card in a non-hackable manner.

The memory may include, for example, flash memory and/or NVRAM memory,as discussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 764, expansionmemory 774, or memory on processor 752 that may be received, forexample, over transceiver 768 or external interface 762.

Device 750 may communicate wirelessly through communication interface766, which may include digital signal processing circuitry wherenecessary. Communication interface 766 may provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication may occur, for example, through radio-frequencytransceiver 768. In addition, short-range communication may occur, suchas using a Bluetooth, WiFi, or other such transceiver (not shown). Inaddition, GPS (Global Positioning System) receiver module 770 mayprovide additional navigation- and location-related wireless data todevice 750, which may be used as appropriate by applications running ondevice 750.

Device 750 may also communicate audibly using audio codec 760, which mayreceive spoken information from a user and convert it to usable digitalinformation. Audio codec 760 may likewise generate audible sound for auser, such as through a speaker, e.g., in a handset of device 750. Suchsound may include sound from voice telephone calls, may include recordedsound (e.g., voice messages, music files, etc.) and may also includesound generated by applications operating on device 750.

The computing device 750 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as acellular telephone 780. It may also be implemented as part of asmartphone 782, personal digital assistant, or other similar mobiledevice.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made without departingfrom the spirit and scope of the disclosure. For example, various formsof the flows shown above may be used, with steps re-ordered, added, orremoved. Accordingly, other implementations are within the scope of thefollowing claims.

For instances in which the systems and/or methods discussed here maycollect personal information about users, or may make use of personalinformation, the users may be provided with an opportunity to controlwhether programs or features collect personal information, e.g.,information about a user's social network, social actions or activities,profession, preferences, or current location, or to control whetherand/or how the system and/or methods can perform operations morerelevant to the user. In addition, certain data may be anonymized in oneor more ways before it is stored or used, so that personallyidentifiable information is removed. For example, a user's identity maybe anonymized so that no personally identifiable information can bedetermined for the user, or a user's geographic location may begeneralized where location information is obtained, such as to a city,ZIP code, or state level, so that a particular location of a user cannotbe determined. Thus, the user may have control over how information iscollected about him or her and used.

Embodiments and all of the functional operations described in thisspecification may be implemented in digital electronic circuitry, or incomputer software, firmware, or hardware, including the structuresdisclosed in this specification and their structural equivalents, or incombinations of one or more of them. Embodiments may be implemented asone or more computer program products, i.e., one or more modules ofcomputer program instructions encoded on a computer readable medium forexecution by, or to control the operation of, data processing apparatus.The computer readable medium may be a machine-readable storage device, amachine-readable storage substrate, a memory device, a composition ofmatter effecting a machine-readable propagated signal, or a combinationof one or more of them. The term “data processing apparatus” encompassesall apparatus, devices, and machines for processing data, including byway of example a programmable processor, a computer, or multipleprocessors or computers. The apparatus may include, in addition tohardware, code that creates an execution environment for the computerprogram in question, e.g., code that constitutes processor firmware, aprotocol stack, a database management system, an operating system, or acombination of one or more of them. A propagated signal is anartificially generated signal, e.g., a machine-generated electrical,optical, or electromagnetic signal that is generated to encodeinformation for transmission to suitable receiver apparatus.

A computer program (also known as a program, software, softwareapplication, script, or code) may be written in any form of programminglanguage, including compiled or interpreted languages, and it may bedeployed in any form, including as a stand alone program or as a module,component, subroutine, or other unit suitable for use in a computingenvironment. A computer program does not necessarily correspond to afile in a file system. A program may be stored in a portion of a filethat holds other programs or data (e.g., one or more scripts stored in amarkup language document), in a single file dedicated to the program inquestion, or in multiple coordinated files (e.g., files that store oneor more modules, sub programs, or portions of code). A computer programmay be deployed to be executed on one computer or on multiple computersthat are located at one site or distributed across multiple sites andinterconnected by a communication network.

The processes and logic flows described in this specification may beperformed by one or more programmable processors executing one or morecomputer programs to perform functions by operating on input data andgenerating output. The processes and logic flows may also be performedby, and apparatus may also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both.

The essential elements of a computer are a processor for performinginstructions and one or more memory devices for storing instructions anddata. Generally, a computer will also include, or be operatively coupledto receive data from or transfer data to, or both, one or more massstorage devices for storing data, e.g., magnetic, magneto optical disks,or optical disks. However, a computer need not have such devices.Moreover, a computer may be embedded in another device, e.g., a tabletcomputer, a mobile telephone, a personal digital assistant (PDA), amobile audio player, a Global Positioning System (GPS) receiver, to namejust a few. Computer readable media suitable for storing computerprogram instructions and data include all forms of non-volatile memory,media and memory devices, including by way of example semiconductormemory devices, e.g., EPROM, EEPROM, and flash memory devices; magneticdisks, e.g., internal hard disks or removable disks; magneto opticaldisks; and CD ROM and DVD-ROM disks. The processor and the memory may besupplemented by, or incorporated in, special purpose logic circuitry.

To provide for interaction with a user, embodiments may be implementedon a computer having a display device, e.g., a CRT (cathode ray tube) orLCD (liquid crystal display) monitor, for displaying information to theuser and a keyboard and a pointing device, e.g., a mouse or a trackball,by which the user may provide input to the computer. Other kinds ofdevices may be used to provide for interaction with a user as well; forexample, feedback provided to the user may be any form of sensoryfeedback, e.g., visual feedback, auditory feedback, or tactile feedback;and input from the user may be received in any form, including acoustic,speech, or tactile input.

Embodiments may be implemented in a computing system that includes aback end component, e.g., as a data server, or that includes amiddleware component, e.g., an application server, or that includes afront end component, e.g., a client computer having a graphical userinterface or a Web browser through which a user may interact with animplementation, or any combination of one or more such back end,middleware, or front end components. The components of the system may beinterconnected by any form or medium of digital data communication,e.g., a communication network. Examples of communication networksinclude a local area network (“LAN”) and a wide area network (“WAN”),e.g., the Internet.

The computing system may include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

While this specification contains many specifics, these should not beconstrued as limitations on the scope of the disclosure or of what maybe claimed, but rather as descriptions of features specific toparticular embodiments. Certain features that are described in thisspecification in the context of separate embodiments may also beimplemented in combination in a single embodiment. Conversely, variousfeatures that are described in the context of a single embodiment mayalso be implemented in multiple embodiments separately or in anysuitable subcombination. Moreover, although features may be describedabove as acting in certain combinations and even initially claimed assuch, one or more features from a claimed combination may in some casesbe excised from the combination, and the claimed combination may bedirected to a subcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described program components and systems maygenerally be integrated together in a single software product orpackaged into multiple software products.

In each instance where an HTML file is mentioned, other file types orformats may be substituted. For instance, an HTML file may be replacedby an XML, JSON, plain text, or other types of files. Moreover, where atable or hash table is mentioned, other data structures (such asspreadsheets, relational databases, or structured files) may be used.

Thus, particular embodiments have been described. Other embodiments arewithin the scope of the following claims. For example, the actionsrecited in the claims may be performed in a different order and stillachieve desirable results.

What is claimed is:
 1. A computer-implemented method, comprising: receiving, by one or more processors, a query at a communications device; obtaining, by the one or more processors, message data responsive to the received query, the message data comprising a plurality of messages, the plurality of messages including messages respectively sent through different messaging platforms; identifying, by the one or more processors and from among the plurality of messages, multiple first messages that were each sent through a first messaging platform; determining, by the one or more processors, that a count of the identified first messages satisfies a threshold for a minimum number of messages, wherein the threshold is greater than one; in response to the determination that the count of the identified first messages satisfies the threshold, generating, by the one or more processors, a summary of the first messages sent through the first messaging platform, wherein the summary includes at least a portion of each of multiple of the first messages that were each sent through the first messaging platform; and in response to receiving the query, providing, by the one or more processors, the summary to at least one of a display device or an audio interface for presentation to a user.
 2. The method of claim 1, wherein: the method further comprises receiving the first messages at the client device; the message data further comprises temporal data indicative of at least one of a time or date at which the communications device received each of the first messages; and the method includes generating a first interface element that includes the summary, comprising: establishing a chronological ordering of the received first messages based on the temporal data; and arranging portions of the first messages within the first interface element in accordance with the established chronological ordering.
 3. The method of claim 2, wherein: the portions of the first messages comprise at least one of textual content or image data; and the first interface element further comprises a portion of the temporal data associated with an initial one of the first messages within the chronological ordering.
 4. The method of claim 1, further comprising: presenting the summary in a first interface element of a user interface; detecting a user input associated with the presented first interface element; in response to the detected input, generating second interface elements associated with each of the first messages, the second interface elements comprising portions of corresponding ones of the first messages; modifying at least a portion of the user interface to include the second interface elements; and providing the modified user interface to the display device for presentation to the user.
 5. The method of claim 1, wherein generating the summary comprises generating a digest card, the digest card providing a summary of the first messages.
 6. The method of claim 1, further comprising: generating a first interface element of a user interface, wherein the first interface element includes the summary; identifying, from among the plurality of messages, second messages from a second messaging platform; determining that a count of the second messages fails to satisfy the threshold; and in response to determining that the count of the second messages fails to satisfy the threshold, generating a second interface element for each of the second messages, wherein each of the second interface elements comprises at least a portion of a different message of the second messages.
 7. The method of claim 1, further comprising: generating, for a user interface, a first interface element including the summary; and generating, for the user interface, a second interface element that includes at least a portion of a second message of the plurality of messages.
 8. The method of claim 7, wherein: the query comprises at least one keyword; the portion of the second message comprises textual content that includes the keyword; and the method further comprises modifying, within the second interface element, at least one visual characteristic of the textual content that includes the keyword.
 9. The method of claim 7, wherein: the generated user interface includes the second interface element; and the method further comprises: detecting a user input associated with the second interface element; and in response to the detected input, at least one of (i) executing an application program associated with the messaging platform corresponding to the message indicated by the second interface element or (ii) performing operations that initiate an assistant flow.
 10. The method of claim 1, further comprising: determining that a body of a second one of the messages exceeds a predetermined size; and in response to the determination, generating an interface element, different from the summary, that includes a portion of the body of the second message.
 11. The method of claim 1, wherein: the summary is included in a first interface element of a user interface; the method further comprises generating a plurality of second interface elements for the user interface, the second interface elements being associated with corresponding second messages of the plurality of messages; the message data further comprises temporal data indicative of at least one of a time or date for each of the corresponding second messages; and the method further includes: establishing a chronological ordering of the second messages based on the temporal data; and arranging the second interface elements within the user interface in accordance with the established chronological ordering.
 12. The method of claim 1, further comprising: receiving audio data at the communications device, the audio data comprising an utterance spoken by a user into a microphone of the communications device; and generating the query based on at least a portion of the received audio data.
 13. The method of claim 1, further comprising: transmitting at least a portion of the received query to a computing system across a communications network; and receiving at least a portion of the message data from the computing system in response to the transmission.
 14. The method of claim 1, wherein at least two of the plurality of messages are selected from a different one of the group consisting of: email, instant messaging, SMS/MMS text messaging, social networking application, and chat-based application.
 15. The method of claim 1, wherein the plurality of messaging platforms comprise two or more from the group consisting of an email platform, a social-networking platform, a text messaging platform, an instant messaging platform, a text-based chat platform, a voice-based chat platform, and a video-based chat platform.
 16. The method of claim 1, further comprising generating, by the one or more processors, a user interface that includes multiple sections, wherein each section corresponds with a single messaging platform and a first section of the multiple sections includes the summary.
 17. The method of claim 1, wherein: each of multiple of the first messages are messages sent by different users through the first messaging platform, and the first messaging platform is an email platform, a social-networking platform, a text messaging platform, an instant messaging platform, a text-based chat platform, a voice-based chat platform, or a video-based chat platform.
 18. A communications device, comprising: at least one processor; and a memory storing executable instructions that, when executed by the at least one processor, causes the at least one processor to perform operations comprising: receiving a query; obtaining message data responsive to the received query, the message data comprising a plurality of messages, the plurality of messages including messages respectively sent through different messaging platforms; identifying, among the plurality of messages, multiple first messages that were each sent through a first messaging platform; and determining that a count of the identified first messages satisfies a threshold for a minimum number of messages, wherein the threshold is greater than one; in response to the determination that the count of the identified first messages satisfies the threshold, generating a summary of the first messages sent through the first messaging platform, wherein the summary includes at least a portion of each of multiple of the first messages that were each sent through the first messaging platform; and in response to receiving the query, providing the summary to at least one of a display device or an audio interface for presentation to a user.
 19. The communications device of claim 18, wherein: the operations further comprise receiving the first messages at the client device; the message data further comprises temporal data indicative of at least one of a time or date for each of the first messages; and the operations further comprise: establishing a chronological ordering of the received first messages based on the temporal data; and arranging portions of the first messages in the summary in accordance with the established chronological ordering.
 20. The communications device of claim 18, wherein the operations further comprise: presenting the summary in a first interface element of a user interface; detecting a user input associated with the presented first interface element; in response to the detected input, generating second interface elements associated with each of the first messages, the second interface elements comprising portions of corresponding ones of the first messages; modifying at least a portion of the user interface to include the second interface elements; and providing the modified user interface to the display device for presentation to the user.
 21. The communications device of claim 18, wherein the operations further comprise: generating a first interface element of a user interface, wherein the first interface element includes the summary; identifying, from among the plurality of messages, second messages from a second messaging platform; determining that a count of the second messages fails to satisfy the threshold; and in response to determining that the count of the second messages fails to satisfy the threshold, generating second interface elements associated with each of the second messages, wherein each of the second interface elements comprises at least a portion of a different message of the second messages.
 22. The communications device of claim 18, wherein at least two of the plurality of messages are from different communication platforms of the group consisting of: email, instant messaging, SMS/MMS text messaging, a social networking application, and a chat-based application.
 23. One or more tangible, non-transitory computer-readable media storing instructions that, when executed by at least one processor of a client device, cause the client device to perform operations comprising: receiving a query at a communications device; obtaining message data responsive to the received query, the message data comprising a plurality of messages, the plurality of messages including messages respectively sent through different messaging platforms; identifying, from among the plurality of messages, multiple first messages that were each sent through a first messaging platform; determining that a count of the identified first messages satisfies a threshold for a minimum number of messages, wherein the threshold is greater than one; in response to the determination that the count of the identified first messages satisfies the threshold, generating a summary of the first messages sent through the first messaging platform, wherein the summary includes at least a portion of each of multiple of the first messages that were each sent through the first messaging platform; in response to receiving the query, providing the summary to at least one of a display device or an audio interface for presentation to a user. 